#循环是程序设计语言中反复执行某些代码的一种计算机处理过程。这些代码一直重复直到条件不满足才停止。

# for循环
#1.for循环没有range()函数，直接遍历序列
#编写一个Python程序，从键盘录入一个字符串，使用for循环逐个输出。依次遍历
msg=input("请输入一个字符串：")
for s in msg:
    print(s)
print()

number=[0,1,2,3,4,5,6]
for i in number:
    print(i)
print()


#2.for循环只有stop值,默认从0开始，到stop-1结束
for i in range(4):
    print(i)
print()

#3.for循环有start和stop值
##（1）如果start<stop值，则不执行
for i in range(5,3):
    print(i)
print()

##（2）如果start>=stop值，默认从左边2开始，则到stop-1结束
for i in range(2,5):
    print(i)
print()

#for循环的退出
#1.正常退出，循环变量等于或超过stop值
for i in range(4):
    print(i)
print("last:",i)
print()

#2.for循环的break语句，中途退出
for i in range(4):
    print(i)
    if i % 2==1:
        break
print("last:",i,"\n")

#案例：for循环找出1-100之间的所有偶数
for i in range(1,101):
    if i%2==0:
        print(i)
print()

#案例：计算出1-100之间的所有整数之和是多少
sum=0
for i in range(1,101):
    sum=sum+i
print(f"1-100之间的所有整数之和是：{sum:d}")
print("1-100之间的整数之和是：{:d}".format(sum))
print()

#for循环注意事项：
#1.循环变量是控制循环次数的变量，它是自然变化的，不能人为改变它
for i in range(5):
    print(i)
    i=i+1
    i=10
#这里的i=i+1是无效的，因为for循环中i是自然变化的，不受人为控制
print()

#2.避免出现step=0的情况，如果step=0，那么变量不变化，原地踏步
# for i in range(3,5,0):
#     print(i)

for i in range(1,6,2):
    print(i)
print()

#3. for循环正常退出，循环变量的值不会等于stop值
n = input("请输入一个整数：")
n = int(n)
for i in range(2,n):
    if n%i==0:
        break
if i==n:
    print(f"{n}是素数")
else:
    print(f"{n}不是素数")
#这个程序显然是错误的，程序原来以为break退出时候会有i<n，正常退出时候，i=n，由此判断n不是素数
#但是程序正常退出时候，i=n-1,仍然<n


#用while循环改写
n = input("请输入一个整数：")
n = int(n)
i=2
while i<n:
    if n%i==0:
        break
    i=i+1
if i==n:
    print(f"{n}是素数")
else:
    print(f"{n}不是素数")
